Cooperative Instruction Scheduling with Linear Scan Register Allocation

نویسندگان

  • Khaing Khaing Kyi Win
  • Weng-Fai Wong
چکیده

Linear scan register allocation is an attractive register allocation algorithm because of its simplicity and fast running time. However, it is generally felt that linear scan register allocation yields poorer code than allocation schemes based on graph coloring. In this paper, we propose a pre-pass instruction scheduling algorithm that improves on the code quality of linear scan allocators. Our implementation in the Trimaran compiler-simulator infrastructure shows that our scheduler can reduce the number of active live ranges that the linear scan allocator has to deal with. As a result, fewer spills are needed and the quality of the generated code is improved. Furthermore, compared to the default scheduling and graph coloring allocator schemes found in the IMPACT and Elcor components of Trimaran, our implementation with our prepass scheduler and linear scan register allocator significantly reduced compilation times.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Fast, frequency-based, integrated register allocation and instruction scheduling

Instruction scheduling and register allocation are two of the most important optimization phases in modern compilers as they have a significant impact on the quality of the generated code. Unfortunately the objectives of these two optimizations are in conflict with one another. The instruction scheduler attempts to exploit ILP and requires many operands to be available in registers. On the othe...

متن کامل

Register allocation sensitive region scheduling

Because of the interdependences between instruction scheduling and register allocation, it is not clear which of these two phases should run rst. In this paper, we describe how we modiied a global instruction scheduling technique to make it cooperate with a subsequent register allocation phase. In particular, our cooperative global instruction scheduler performs region scheduling transformation...

متن کامل

Register Allocation Instruction Scheduling A New Approach

Instruction scheduling and register allocation are two very In this paper, we solve register allocation and instruction scheduling simultaneously using integer linear programming (ILP). theform ulation?a new ???v ariableU has taken several approaches, including: branch-andbound enumeration (5) (13). more expensive register spill and reload instructions in the program. Eager code This thesis dev...

متن کامل

Effective Instruction Scheduling With Limited Registers

Effective global instruction scheduling techniques have become an important component in modern compilers for exposing more instruction-level parallelism (ILP) and exploiting the everincreasing number of parallel function units. Effective register allocation has long been an essential component of a good compiler for reducing memory references. While instruction scheduling and register allocati...

متن کامل

Optimal Integrated VLIW Code Generation with Integer Linear Programming

We give an Integer Linear Programming (ILP) solution that fully integrates all steps of code generation, i.e. instruction selection, register allocation and instruction scheduling, on the basic block level for VLIW processors. In earlier work, we contributed a dynamic programming (DP) based method for optimal integrated code generation, implemented in our retargetable code generator OPTIMIST. I...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005